package model.liczba;


/**
 * @author   marcin.baj
 * Liczba o parametryzowanej precyzji oraz szereg podstawowych operacji na liczbie.
 */
public interface Liczba {

	public abstract Liczba add(Liczba liczba);
	
	public abstract Liczba abs();

	public abstract byte byteValue();

	public abstract int compareTo(Liczba liczba);

	public abstract Liczba divide(Liczba liczba, int precyzja);

	public abstract double doubleValue();

	public abstract Liczba max(Liczba liczba);

	public abstract Liczba min(Liczba liczba);

	public abstract Liczba multiply(Liczba liczba, int precyzja);

	public abstract Liczba negate();

	public abstract Liczba subtract(Liczba liczba);
	
	public abstract Liczba sqrt(int precyzja);

	public abstract int intValue();

	public abstract int getPrecyzja();

}